iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
Rust

用 Tauri 打造你的應用程式系列 第 2

[Day 02] Tauri 簡介

  • 分享至 

  • xImage
  •  

雖然昨天有簡單提了一下,但今天就來正式認識一下 Tauri 吧!

Tauri 簡介

Tauri 是一個開源框架,讓開發者可以使用 HTML、CSS 和 JavaScript 等網頁前端技術來建立跨平台的桌面與手機 App。它的核心理念就是要提供一個更輕量、更快速、更安全的解決方案。

Tauri 的出現

以前想要用網頁技術來開發桌面應用的話,Electron.js 幾乎是唯一的選擇。不過 Electron.js 一直有個讓人頭痛的問題 — 打包出來的檔案超級大,而且記憶體消耗也很兇。為了解決這些痛點,Tauri 就這樣誕生了,並在 2022 年 6 月時正式發布 1.0.0 版。

接著過了兩年,在 2024 年 10 月時,Tauri 又推出了 2.0 版。這個版本最令人興奮的地方就是正式支援 iOS 和 Android,這意味著開發者現在可以用同一套程式碼,真正地涵蓋所有主流的桌面和手機平台。除此之外,2.0 版本還帶來了更強大的外掛系統,讓你可以用 Swift (iOS) 和 Kotlin (Android) 來寫原生功能,同時底層的 IPC (跨程序通訊) 也重新打造,效能大幅提升。

Tauri vs. 其他框架

昨天的文章中有提到,除了 Tauri 之外,其實還有不少框架也在想辦法解決跨平台開發的需求。之前看到的這個比較表整理了「能將 Web App 轉換成桌面 App」的各種框架,在這些框架中,除了 Tauri 之外,只有 Flutter 跟 .NET MAUI 可以同時開發手機 APP,不過它們的前端都不是用 HTML、CSS、JS 這套技術。
(也正因為這樣,我們這次的公司專案才會選擇 Tauri)

Flutter

雖然上面說 Flutter 可以開發 Web App,但其實它的運作方式有點特別...

Flutter 不像一般網頁那樣使用 HTML/CSS 來渲染,也不像 React Native 那樣依賴作業系統的原生 UI 元件。相反地,Flutter 自帶了一個渲染引擎(叫做 Skia),會直接在畫布(Canvas)上一個像素一個像素地繪製。不管你的 App 是跑在手機、桌面還是網頁上,對 Flutter 來說都只是一塊空白的畫布,然後它會自己把按鈕、文字、動畫等各種介面元素通通畫上去。

React Native 呢?

至於 React Native 嘛,它其實不是把網頁包起來(所以才沒被放進比較表裡)。它的做法是把 JavaScript 程式碼轉換成各平台真正的原生 UI 元件。例如:在手機上,一個 <View> 元件會變成 Android 的原生 View 或 iOS 的原生 UIView。

Tauri 的優點與缺點

優點

  1. 輕量:因為使用了系統內建的 WebView,Tauri 打包出來的檔案大小跟記憶體用量都遠比 Electron 小很多。一個簡單的 "Hello World" 應用,Tauri 可能不到 10MB,但 Electron 隨便就超過 100MB。
  2. 高效能:資源用得少就代表啟動更快、跑起來更順暢,特別是在配備比較差的電腦上,差距會更明顯。
  3. 高安全性:Tauri 的核心是用 Rust 寫的,而 Rust 的記憶體安全特性從根本上避免了很多常見的安全漏洞。再加上它的 API 預設都是關閉的,你必須主動開啟需要的功能,這樣就大大降低了被攻擊的風險。
  4. 跨平台:Tauri 2.0 把手伸向了手機端,讓開發者有了一套從桌面到手機的完整解決方案。

缺點

  1. 學習門檻較高:Tauri 的後端要用 Rust 來寫。對於不熟悉 Rust 的前端工程師來說,需要花額外的時間跟精力來學習,這也是最大的入門障礙。
  2. 生態系成長中:跟發展多年的 Electron 比起來(有龐大的社群、豐富的套件跟成熟的解決方案),Tauri 的生態系雖然很活躍,但還是相對年輕,有時候遇到特殊需求可能找不到現成的工具,甚至 Github 上還有很多 issue 正等待被解決 QQ
  3. 依賴系統 WebView:這個優點同時也是缺點。用系統的 WebView 就代表在不同作業系統跟版本上,App 的渲染效果可能會有些微差異,開發者需要處理這些潛在的相容性問題。

小結

Tauri 2.0 為跨平台 App 開發帶來了一個很讓人期待的新選擇。它並不是要完全取代 Electron,而是在輕量、效能跟安全性這些方面提供更好的解決方案。如果你的專案很在意資源消耗,或者你想用一套程式碼同時搞定桌面跟手機 App,那 Tauri 2.0 就會是一個值得考慮的選擇。


上一篇
[Day 01] 緣起
下一篇
[Day 03] Tauri 核心原理與架構
系列文
用 Tauri 打造你的應用程式5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言